Not applicable.
Not applicable.
This invention is in the field of digital filters, and is more specifically directed to quantization techniques, particularly in infinite impulse response (IIR) digital filters.
As is well known in the art, digital signal processing is now commonly used in many electronic systems, over a wide range of applications. Digital signal processing techniques are now particularly commonplace in telecommunication applications such as wireless telephones, data communications by way of modems and the like, and other facets of this field. Digital signal processing is also utilized in video and audio signal processing, such as used in image recognition, image processing, data compression, digital audio and digital video recording and playback, and the like.
A fundamental building block in the field of digital signal processing is the digital filter. As is elementary in this field, digital filters refer to the filtering of sampled-data, or discrete-time, signals, which are typically digital representations of analog signals which have been generated by way of analog-to-digital conversion. Fundamentally, a digital filter is a computational process, carried out either through dedicated hardware or through the execution of a sequence of instructions by programmable logic, by way of which an input sequence of numbers is converted into an output sequence of numbers, modified by a transfer function. Typical transfer functions refer to the frequency characteristics of the filter; analogously to analog filter counterparts, examples of digital filter transfer functions include low-pass, high-pass, band-pass, etc. Digital filter computations typically include digital addition, digital multiplication of signal values by constants, and the insertion of delay stages.
As is also well known in the art, digital filters are often classified according to their impulse response. Finite impulse response (FIR) digital filters refer to the class of filters in which only a finite number of input samples affect the generation of a given output sample; typically, FIR digital filters perform computations upon a finite number of input samples (i.e., the current sample, and a selected number of preceding input samples), in a non-recursive fashion. Infinite impulse response (IIR) digital filters are a class of filters in which previous output samples are also used in generating a current output sample, and are thus typically realized in a recursive fashion, including feedback of output sample values. Because of the feedback of prior output values, each current output value of an IIR filter depends upon the value of an infinite series of input sample values, hence the term xe2x80x9cinfinite impulse responsexe2x80x9d.
As noted above, digital filter realizations generally include multiplication operations, specifically the multiplication of a sampled-data value by a constant value (i.e., a coefficient). According to conventional implementation, a binary multiply of an p-bit digital word by an q-bit digital word will result in a product that occupies p+q-bits. Typically, digital filters operate upon input and output sample values of the same resolution, expressed by the same number of bits in the digital words representing these values. Accordingly, the higher precision data words resulting from the multiply operation are typically truncated, or quantized, to the lower-order of the output sample value. Various types of quantization are known in the art, including simple truncation of lower-order bits, rounding, and magnitude truncation (as will be described in further detail below). In the above example, if p-bits are used to represent the input and output sample values, and if q-bit coefficients are utilized, the p+q-bit multiplication results will be quantized to an p-bit data word.
Quantization necessarily inserts error into the digital filter process, as the resulting quantized value is of less precision that the pre-quantization product. The resulting quantization error is of particular concern in the feedback paths of IIR filters, as will now be described relative to FIGS. 1a and 1b. FIG. 1a illustrates the recursive (feedback) portion of a simple first-order IIR filter 2, realized by adder 3, delay stage 4, and multiplier 5. Adder 3 receives the current input value xn and the output of multiplier 5 at its inputs, and generates output value yn at its output. Output value yn is also applied to delay stage 4, for use in connection with the next sample. The output of delay stage 4 corresponds to output value ynxe2x88x921, since delay stage 4 incorporates a delay of one sample period. The output of delay stage 4 is multiplied by coefficient value a, in multiplier 5, and the product applied to adder 3 as noted above. This operation of filter 2 may therefore be defined as:
yn=xn+axc2x7ynxe2x88x921
where the nth output sample yn corresponds to the sum of the current input sample xn with the product of the value of coefficient a times the prior output sample ynxe2x88x921. This simple first order filter thus has the z-domain transfer function H(z):       H    ⁡          (      z      )        =      1          1      -              az                  -          1                    
where zxe2x88x921, is the z-domain delay operator. Filter 2 of FIG. 1a thus has a single pole, at z=a, requiring coefficient a to have an absolute value less than or equal to unity for stability.
As noted above, however, for an p-bit input value x (and output value y), and assuming an q-bit coefficient a, the output of multiplier 5 will be an p+q-bit value. As such, some degree (specifically, q-bits) of quantization is necessary to generate the p-bit output sample value y. FIG. 1b illustrates digital filter 2xe2x80x2, which is constructed similarly as filter 2 in FIG. 1a, but which also includes quantizer 6 disposed at the output of multiplier 5, prior to adder 3. As shown in FIG. 1b, multiplier 5 generates an p+q-bit product output that is quantized by quantizer 6 into an p-bit digital word prior to application to adder 3. Filter 2xe2x80x2 thus generates an p-bit output value yn for each input sample value xn. The operation of filter 2xe2x80x2 of FIG. 1b can thus be expressed as:
yn=xn+Q[axc2x7ynxe2x88x921]
where Q refers to the quantization operation of quantizer 6.
A well-known problem in IIR digital filters is referred to as xe2x80x9climit cyclesxe2x80x9d. The limit cycle problem is manifest in digital filters that generate an oscillating output signal in response to a constant or zero-level input. In this regard, FIGS. 1a and 1b include only the recursive portions of filters 2, 2xe2x80x2, because limit cycles are caused only by the recursive feedback loops, as is known in the art. It will be understood that the non-recursive (feed-forward) portion of the filters will be implemented in cascade with the recursive portions shown in FIGS. 1a, 1b. Referring to FIG. 1b, an example of the generation of limit cycles responsive to a zero-level input will now be described, in the case where xn=0 for all n, where a=xe2x88x92xc2xd, and where yxe2x88x921=7. As noted above, filter 2xe2x80x2 of FIG. 1b realizes the expression of yn=xn+Q[axc2x7ynxe2x88x921]. In this example, assume that the quantization function Q is a simple rounding function QR. As a result, and considering that xn=0 for all n, filter 2xe2x80x2 thus may be expressed as:       y    n    =            Q      R        ⁡          [                        -                      xe2x80x83                    ⁢                      1            2                          ⁢                  y                      n            -            1                              ]      
Beginning with sample n=xe2x88x921, one may thus tabulate the values of yn as follows:
yxe2x88x921=7
y0=QR[xe2x88x92xc2xd(7)]=QR[xe2x88x923.5]=xe2x88x924
y1=QR[xe2x88x92xc2xd(xe2x88x924)]=QR[2.0]=+2
y2=QR[xe2x88x92xc2xd(2)]=QR[xe2x88x921.0]=xe2x88x921
y3=QR[xe2x88x92xc2xd(xe2x88x921)]=QR[0.5]=+1
y4=QR[xe2x88x92xc2xd(+1)]=QR[xe2x88x920.5]=xe2x88x921
y5=QR[xe2x88x92xc2xd(xe2x88x921)]=QR[0.5]=+1
The xe2x88x921, +1 sequence for output sample values y beyond y5 will continue to repeat so long as the zero-level input is applied.
As is evident from the foregoing, oscillation at the output yn is due to the recursive state signal ynxe2x88x921 being initially at a non-zero value, and energized over time by round-off quantizer 6. In effect, round-off quantizer 6 increases the amplitude of the recursive state variable yn in some instances, keeping this input to filter 2xe2x80x2 from decaying to zero, even with input sample values xn being zero. This limit cycle oscillation at output yn increases the noise floor of the digital filter, reducing the signal-to-noise ratio of the system. In addition, if the output of the digital filter is applied to downstream digital filter stages, the oscillation error can be unintentionally amplified, exacerbating the error.
Other quantization approaches known in the art address the limit cycle problem. For example, the magnitude truncation quantization approach is defined as:
|QMT(x)|xe2x89xa6|x|, for all x
Mitra and Kaiser, Handbook for Digital Signal Processing (Wiley, 1993), chapter 7. Magnitude truncation effectively rounds off toward zero. For example, in this approach, QMT(+3.5)=+3, and QMT(xe2x88x923.5)=xe2x88x923. As a result, recursive state variables such as ynxe2x88x921 in filter 2xe2x80x2, will decay to zero with zero-level input values xn.
By way of extension, second-order IIR digital filters generally also include quantization processes in the recursive, feedback loops. An exemplary simple transfer function, for the recursive portion of the filter only, may be expressed in the z-domain as follows:       H    ⁡          (      z      )        =      1          1      -                        a          1                ⁢                  z                      -            1                              -                        a          2                ⁢                  z                      -            2                              
In this filter, the coefficients a1 and a2 must have absolute values less than 2 and 1, respectively, for purposes of stability (i.e., to avoid the poles of the filter). A non-recursive portion of the filter may, of course, be incorporated into the numerator of this transfer function H(z).
In any event, quantization will be typically utilized in typical digital realizations, as will now be described relative to FIGS. 2a and 2b, which illustrate alternative approaches in implementing quantization into second-order IIR digital filters.
In FIG. 2a, filter 8 includes adders 10 and 20. Adder 10 receives the current input sample value xn and the output of adder 20 at its inputs, and generates current output sample value yn at its output. Output sample value yn is fedback into filter 8 by way of delay stages 11, 13, each of which encompass a delay defined by the sample period of filter 8; the output of delay stage 11 is applied to the input of delay stage 13, as shown. Sample ynxe2x88x921 at the output of delay stage 11 is applied to multiplier 12, and is multiplied by coefficient a1 thereby; similarly, sample ynxe2x88x922 at the output of delay stage 13 (and which thus has been delayed by two sample periods) is applied to multiplier 14, which multiplies sample ynxe2x88x922 by coefficient a2.
As noted above, the output of multipliers 12, 14 are p+q-bit digital words, in the case where input and output samples x, y are p-bit words and where coefficients a1, a2 are q-bit words. In filter 8 of FIG. 2a, two quantizers 16, 18 are utilized at the outputs of multipliers 12, 14, respectively, and their outputs (p-bits wide) are added by adder 20, the output of which is applied to adder 10. The operation realized by second-order IIR digital filter 8 may be expressed as:
yn=xn+Q[a1ynxe2x88x921]+Q[a2ynxe2x88x922]
This expression reflects the two quantizers 16, 18.
In FIG. 2b, filter 8xe2x80x2 includes a single quantizer 24 is inserted between adder 22 and adder 10. The filter expression of filter 8xe2x80x2 is as follows:
yn=xn+Q[a1ynxe2x88x921+a2ynxe2x88x922]
As described in Bauer and Leclerc, xe2x80x9cComputer-Aided Test for the Absence of Limit Cycles in Fixed-Point Digital Filtersxe2x80x9d, Transactions on Signal Processing (IEEE, November 1991), pp. 2400-2410, the stability region within which coefficients a1, a2 may reside is greater for filter 8xe2x80x2 than for filter 8. Specifically, coefficient a1 may not have an absolute value greater than 1 for any value of coefficient a2 in filter 8, while in filter 8xe2x80x2 coefficient a1 may have an absolute value greater than 1 for some negative values of coefficient a2 (particularly as coefficient a2 becomes more negative, up to its limit of xe2x88x921). Accordingly, filter 8xe2x80x2 is often preferred, as a wider range of filter characteristics are available.
However, adder 22 receives the full precision results of multipliers 12, 14, and as such is realized as an p+q-bit adder according to conventional techniques. FIG. 3 illustrates the operation of multipliers 12, 14 and adder 22 in this example. As illustrated in FIG. 3, multiplier 12 is realized as a series of successive shift and add operations applied to output sample value ynxe2x88x921 from delay stage 11, in the manner defined by the non-zero bits of coefficient a1, with the final sum a1ynxe2x88x921 being expressed as p+q-bits. Multiplier 14 is similarly arranged, and multiplies output sample value ynxe2x88x922 by coefficient a2. Adder 22 adds the two results from multipliers 12, 14, to derive the p+q-bit value a1ynxe2x88x921+a2ynxe2x88x922.
While improved quantization is provided by the use of single quantizer 24 of filter 8xe2x80x2, in combination with the wider range of coefficients a1, a2 under which stability is still maintained, the higher precision implementation of adder 22 occupies a significantly greater amount of chip area, particularly if filter 8xe2x80x2 is replicated many times in an integrated circuit, for example in realizing higher order filters by the cascading of first and second order filters. Additionally, while quantization error is improved by high precision adder 22 in filter 8xe2x80x2, a certain amount of noise is generated by adder 22 itself in a manner which depends upon the number of bits of precision.
It is therefore an object of the present invention to provide a digital filter having a recursive path in which reduced precision adder circuitry can be utilized without increasing quantization error.
It is a further object of the present invention to provide such a digital filter which may be efficiently implemented in an integrated circuit, relative to chip area.
It is a further object of the present invention to provide such a digital filter which may be efficiently implemented relative to memory resource requirements.
It is a further object of the present invention to provide such a digital filter which may be implemented as a dedicated, fixed-coefficient, digital filter.
It is a further object of the present invention to provide such a digital filter which may be implemented as a programmable coefficient digital filter, such as may be performed by a microcoded digital signal processor (DSP).
Other objects and advantages of the present invention will be apparent to those of ordinary skill in the art having reference to the following specification together with its drawings.
The present invention may be implemented into a digital filter by providing an adder function in which the addends are multiplied by filter coefficients and added in an interleaved manner, for second-order digital IIR filters. Specifically, the addition and multiply operations are carried out by way of add and shifts for each non-zero bit position in the coefficient for each of the delayed output samples, in increasing order of the non-zero bit positions. The adder circuitry need only have the same precision as the output signal; least significant bits of the sums are retained in an ORed manner, for generating a carry signal at the end of the summation in order to effect magnitude truncation quantization.